// 代理(保护原始信息)：
// let o = {
//     name: 'xiaoming',
//     price: 190
// }
// // 第一个参数你要代理谁，第二个你要干嘛
// let d = new Proxy(o, {
//     // 读取操作
//     get(target, key) {
//         console.log(target);
//         if (key === 'price') {
//             return target[key] + 20
//         } else {
//             return target[key]
//         }
//     }
// });

// console.log(d.price, d.name);


// 比如一个数组需要排序，还需要一个功能让排序过的回去,从后端的数据只读不能修改
// let o = {
//     name: 'xiaoming',
//     price: 190
// }
// let d = new Proxy(o, {
//     // 读取操作
//     get(target, key) {
//         return target[key]
//     },
//     set(target, key, value) {
//         return false
//     }
// });
// d.price = 300; //写入失效
// console.log(d.price, d.name);


// class Component {
//     constructor() {
//         this.proxy = new Proxy({
//             id: Math.random().toString(36).slice(-8)
//         }, {})
//     }
//     get id() {
//         return this.proxy.id
//     }
// }
// let com = new Component()

// for (let i = 0; i < 10; i++) {
//     console.log(com.id);

// }